package com.fjsh;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * Gateway网关
 * 动态路由：
 * 1.准备数据库表
 * 2.数据源在Nacos中配置，故需引入Nacos相关依赖，见：
 *  <dependency>
 *      <groupId>com.fjsh</groupId>
 *      <artifactId>com-fjsh-common-nacos</artifactId>
 *      <version>${project.version}</version>
 *  </dependency>
 *  3.思路：动态路由主要是由PropertiesRouteDefinitionLocator这个类的实现进行加载不同的路由方式（如：配置文件方式，存储方式，注册中心方式）
 *  来读取路由信息，用户发起的每次请求，网关都会取读取一次，因此我们只需要在路由读取之前，将我们需要的路由信息配置好，并交给网关
 *  管理即可，主要实现详见：RouteHandler
 *
 *  4.测试：通过controller层进行操作
 *
 * TODO:整合Sentinel实现限流-实现方式：引入Sentinel相关依赖，使用客户端方式配置即可
 */
@EnableDiscoveryClient
@SpringBootApplication
@MapperScan(basePackages = "com.fjsh.mapper")
public class GatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class,args);
    }

}
